#pragma once
#include "nfa.h"
#include "Bitmap.h"
#include <set>


class Dstat
{
private:
	Bitmap *stats;
	
	int* refer_count;
public:
	static int label_count;
	int label;
	std::set<Node*> nodes;
	std::vector<Node*> finalStat;
	Dstat();
	Dstat(const Dstat& stat);
	void genLabel();
	bool havaFinalStat();
	friend bool operator<(const Dstat& l, const Dstat& other);
	~Dstat();
	void addStat(Node* node);
	
};

void eclosure(Node* node, Dstat& dstat);
void move(Node* node,char ch, Dstat& dstat);
